In general, schedulers are used to manage allocation of system resources. When employed in router applications, schedulers manage many queues and ensure overall fairness of outputting data packets from the queues by selectively servicing each of the queues at different times.
Both virtual-time schedulers and real-time schedulers can be used to schedule servicing of output queues in a router device. Virtual-time schedulers maintain a relative ordering of scheduling queues for servicing, but do not track the passage of real time. Real-time schedulers, on the other hand, track the passage of real time and utilize time stamp information associated with each data packet to schedule transmission of packets so that data packets are output from the queues at a specified rate. Congestion in the queues can occur if they are not serviced at a proper rate.